package com.zmn.oms.model.dto.order;

import com.zmn.oms.common.dto.OmsStatusOperator;
import com.zmn.oms.model.dto.remark.OrderRemarkDTO;
import com.zmn.oms.model.entity.activity.OrderActivity;
import com.zmn.oms.model.entity.detail.OrderDetail;
import com.zmn.oms.model.entity.discount.OrderDiscount;
import com.zmn.oms.model.entity.discount.OrderPayDiscount;
import com.zmn.oms.model.entity.factory.OrderFactory;
import com.zmn.oms.model.entity.member.OrderMember;
import com.zmn.oms.model.entity.operation.OrderOperation;
import com.zmn.oms.model.entity.order.Order;
import com.zmn.oms.model.entity.order.OrderExtend;
import com.zmn.oms.model.entity.orderfinalpricequotation.OrderFinalPriceQuotation;
import com.zmn.oms.model.entity.product.OrderProduct;
import com.zmn.oms.model.entity.serviceitem.OrderServiceItem;
import com.zmn.oms.model.entity.shop.OrderExternalShop;
import com.zmn.oms.model.entity.shop.OrderShop;
import com.zmn.oms.model.entity.tag.OrderTag;
import com.zmn.oms.model.entity.work.OrderWork;
import lombok.Data;
import lombok.ToString;

import java.util.List;

/**
 * 类描述: 新订单
 *
 * @author liuying
 * @date 2018/11/07 9:38 AM
 */
@Data
@ToString(callSuper = true)
public class OrderDTO extends OmsStatusOperator {

    /**
     * 订单
     */
    private Order order;

    /**
     * 工单
     */
    private OrderWork orderWork;

    /**
     * 旧工单
     */
    private OrderWork dbOrderWork;

    /**
     * 订单详情
     */
    private OrderDetail orderDetail;

    /**
     * 渠道订单扩展数据
     */
    private OrderExtend orderExtend;

    /**
     * 订单详情
     */
    private OrderDetail dbOrderDetail;

    /**
     * 产品
     */
    private List<OrderProduct> dbOrderProductList;


    /**
     * 厂商订单详情
     */
    private OrderFactory dbOrderFactory;

    /**
     * 会员单信息
     */
    private OrderMember orderMember;

    /**
     * 会员单信息
     */
    private OrderMember dbOrderMember;

    /**
     * 厂商单信息
     */
    private OrderFactory orderFactory;

    /**
     * 店铺信息
     */
    private OrderShop orderShop;

    /**
     * 产品
     */
    private List<OrderProduct> orderProductList;

    /**
     * 优惠
     */
    private List<OrderDiscount> orderDiscountList;

    /**
     * 服务项
     */
    private List<OrderServiceItem> orderServiceItemList;

    /**
     * 会员权益ID
     */
    private Integer equityId;

    /**
     * 配置的级别：1限免，2充值，3免费赠送，4折扣，0 无权益
     */
    private Integer equityType;

    /**
     * 一口价
     */
    private Integer finalPrice;

    /**
     * 支付方式 1 先付 2 后付
     */
    private Integer payType;

    /**
     * ip限制
     */
    private String ip;

    /**
     * 前端传过来的计价器类型
     */
    private Integer originServItemType;

    /**
     * 前端传过来的服务项
     */
    private List<OrderServiceItem> originOrderServiceItemList;

    /**
     * 订单操作信息
     */
    private OrderOperation orderOperation;

    /**
     * 订单标签
     */
    private List<OrderTag> orderTagList;

    /**
     * 订单标签
     */
    private List<Integer> orderTagIdList;

    /**
     * 订单活动
     */
    private OrderActivity orderActivity;

    /**
     * 防刷单检查  2020.09.09 by lhl
     *  1：false  2：true  为空时，默认为2
     */
    private Integer clickFarmingCheck;

    /**
     * 渠道登录手机号(用于第三方平台的登录用户) lhl-2020.12.16
     */
    private String channelLoginPhone;

    /**
     * 入口
     */
    private Integer receiveEntranceId;

    /**
     * 预分配服务公司 id
     */
    private Integer preManageCompanyId;

    /**
     * 次卡优惠券 信息
     */
    private String timesCoupCode;

    /**
     * 购物车下单专用
     */
    private List<OrderDiscount> mosOrderDiscountList;

    /**
     * 店铺下单，优惠券码
     */
    private List<String> discountItemCodes;

    /**
     * 支付优惠分摊优惠
     */
    private List<OrderPayDiscount> orderPayDiscountList;


    /**
     * 交换预约时间工单id
     */
    private Long exchangeWorkId;

    /**
     * 是否改地址
     */
    private Boolean updateAddress;

    /**
     * 下单常用备注
     */
    private OrderRemarkDTO commonRemark;

    /**
     * 外部店铺
     */
    private OrderExternalShop orderExternalShop;

    /**
     * 下单常用备注
     */
    private OrderFinalPriceQuotation orderFinalPriceQuotation;
}
